/*****************************************************
Copyright (C) 2020. All rights reserved.
File name     ：SkipList.h
Version       ：v1.0
Author        ：zhengqijun
Date          ：2020-05-11
Function List ：
Description   ：Deterministic Skip List
******************************************************/

#ifndef SKIPLIST_H_
#define SKIPLIST_H_

// Type Definition
struct SkipNode;
typedef int ElementType;
typedef struct SkipNode *Position;
typedef struct SkipNode *SkipList;

// Function Lists
SkipList Initialize(void);
void Destroy(SkipList L);
SkipList MakeEmpty(SkipList L);
int IsEmpty(SkipList L);
Position Find(ElementType Item, SkipList L);
Position FindMin(SkipList L);
Position FindMax(SkipList L);
SkipList Insert(ElementType Item, SkipList L);
SkipList Delete(ElementType Item, SkipList L);
ElementType Retrieve(Position P);

#endif  /* SKIPLIST_H_ */

// EOF

